home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / editors / emacs / xemacs / xemacs-1.004 / xemacs-1 / xemacs-19.13 / lisp / utils / forms-d2.el < prev    next >
Encoding:
Text File  |  1995-01-31  |  2.4 KB  |  87 lines

  1. ;;; forms-d2.el --- demo forms-mode
  2. ;; Keywords: extensions
  3.  
  4. ;; SCCS Status     : @(#)@ demo2    1.1.2
  5. ;; Author          : Johan Vromans
  6. ;; Created On      : 1989
  7. ;; Last Modified By: Johan Vromans
  8. ;; Last Modified On: Mon Jul  1 13:56:31 1991
  9. ;; Update Count    : 2
  10. ;; Status          : OK
  11. ;; 
  12. ;; This sample forms exploit most of the features of forms mode.
  13.  
  14. ;; Set the name of the data file.
  15. (setq forms-file "forms-d2.dat")
  16.  
  17. ;; Use 'forms-enumerate' to set field names and number thereof.
  18. (setq forms-number-of-fields
  19.       (forms-enumerate
  20.        '(arch-newsgroup            ; 1
  21.      arch-volume            ; 2
  22.      arch-issue            ; and ...
  23.      arch-article            ; ... so
  24.      arch-shortname            ; ... ... on
  25.      arch-parts
  26.      arch-from
  27.      arch-longname
  28.      arch-keywords
  29.      arch-date
  30.      arch-remarks)))
  31.  
  32. ;; The following functions are used by this form for layout purposes.
  33. ;;
  34. (defun arch-tocol (target &optional fill)
  35.   "Produces a string to skip to column TARGET. Prepends newline if needed.
  36. The optional FILL should be a character, used to fill to the column."
  37.   (if (null fill)
  38.       (setq fill ? ))
  39.   (if (< target (current-column))
  40.       (concat "\n" (make-string target fill))
  41.     (make-string (- target (current-column)) fill)))
  42. ;;
  43. (defun arch-rj (target field &optional fill) 
  44.   "Produces a string to skip to column TARGET minus the width of field FIELD.
  45. Prepends newline if needed. The optional FILL should be a character,
  46. used to fill to the column."
  47.   (arch-tocol (- target (length (nth field forms-fields))) fill))
  48.  
  49. ;; Record filters.
  50. ;; This example uses the (defun ...) method of defining.
  51. ;;
  52. (defun forms-new-record-filter (the-record)
  53.   "Form a new record with some defaults."
  54.   (aset the-record arch-from (user-full-name))
  55.   (aset the-record arch-date (current-time-string))
  56.   the-record                ; return it
  57. )
  58.  
  59. ;; The format list.
  60. (setq forms-format-list
  61.      (list
  62.        "====== Public Domain Software Archive ======\n\n"
  63.        arch-shortname
  64.        " - "            arch-longname
  65.        "\n\n"
  66.        "Article: "        arch-newsgroup
  67.        "/"            arch-article
  68.        " "
  69.        '(arch-tocol 40)
  70.        "Issue: "        arch-issue
  71.        " "
  72.        '(arch-rj 73 10)
  73.        "Date: "            arch-date
  74.        "\n\n"
  75.        "Submitted by: "        arch-from
  76.        "\n"
  77.        '(arch-tocol 79 ?-)
  78.        "\n"
  79.        "Keywords: "        arch-keywords
  80.        "\n\n"
  81.        "Parts: "        arch-parts
  82.        "\n\n====== Remarks ======\n\n"
  83.        arch-remarks
  84.      ))
  85.  
  86. ;; That's all, folks!
  87.